﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Configuration;
using System.Windows.Forms;
using System.Data;
using nmConnectionDatabase;
using System.Runtime.InteropServices;

namespace DarkPassenger
{
    class Autocomplete
    {
        //Metodo para cargar la coleccion de datos para el autocomplete
        public static AutoCompleteStringCollection DatosParaAutocompletar(ref ConexionDB conexion, String Campo)
        {
            AutoCompleteStringCollection coleccion = new AutoCompleteStringCollection();
            
            //Recorrer y cargar los items para el autocompletado
            foreach (DataRow row in conexion.GetDataSet().Tables[0].Rows)
            {
                coleccion.Add(Convert.ToString(row[Campo]));
            }
            
            return coleccion;
        }

        /*public static AutoCompleteStringCollection DatosParaAutocompletar(ref DataGridView grd, String Campo)
        {
            AutoCompleteStringCollection coleccion = new AutoCompleteStringCollection();

            //Recorrer y cargar los items para el autocompletado
            foreach (DataGridViewRow row in grd.Rows)
            {
                coleccion.Add(Convert.ToString(row));
            }

            return coleccion;
        }*/

        public static AutoCompleteStringCollection DatosParaAutocompletar(ref ConexionDB conexion, String Campo, String filtro)
        {
            AutoCompleteStringCollection coleccion = new AutoCompleteStringCollection();
            
            //Recorrer y cargar los items para el autocompletado
            foreach (DataRow row in conexion.GetDataSet().Tables[0].Rows)
            {
                if(row[Campo].ToString().Contains(filtro))
                {
                    coleccion.Add(Convert.ToString(row[Campo]));
                }
            }
            
            return coleccion;
        }
        
        public static void SetAutcomplete(ref TextBox txt, ref ConexionDB conexion, String campo)
        {
            txt.AutoCompleteCustomSource = Autocomplete.DatosParaAutocompletar(ref conexion, campo);
            txt.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            txt.AutoCompleteSource = AutoCompleteSource.CustomSource;
            
        }

        public static void SetAutcomplete(ref ComboBox cmb, ref ConexionDB conexion, String campo)
        {
            cmb.AutoCompleteCustomSource = Autocomplete.DatosParaAutocompletar(ref conexion, campo);
            cmb.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            cmb.AutoCompleteSource = AutoCompleteSource.CustomSource;
        }

        /*public static void SetAutocompleteGrid(ref DataGridView grd,ref ComboBox cmb, ref TextBox txt)
        {
            cmb.AutoCompleteCustomSource = Autocomplete.DatosParaAutocompletar(ref grd, cmb.SelectedText);
            cmb.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            cmb.AutoCompleteSource = AutoCompleteSource.CustomSource;
        }*/

        public static void Actualizar(ref ConexionDB conexion, String campo,ref TextBox txt, String filtro)
        {
           txt.AutoCompleteCustomSource = Autocomplete.DatosParaAutocompletar(ref conexion, campo, filtro);
        }
    }
}
